public class Leecode104 {
    /**
     * 二叉树的最大深度
     */
    public class TreeNode {
       int val;
       TreeNode left;
       TreeNode right;
        TreeNode() {}
          TreeNode(int val) { this.val = val; }
           TreeNode(int val, TreeNode left, TreeNode right) {
             this.val = val;
             this.left = left;
             this.right = right;
     }
  }
  //深度优先算法
    public int maxDepth(TreeNode root) {
        // 如果根节点为空，返回深度为0
        if (root == null) {
            return 0;
        } else {
            // 计算左子树的最大深度
            int leftHeight = maxDepth(root.left);
            // 计算右子树的最大深度
            int rightHeight = maxDepth(root.right);
            // 返回左右子树中较大深度加1（加1表示当前节点的深度）
            return Math.max(leftHeight, rightHeight) + 1;

        }
    }
}
